import {defineStore} from "pinia"

// 引入完整的路由表
import routes from "@/router/generouteRoutes"

// 引入发送请求获取菜单的方法
import *as api from "@/api/permission"

// 引入递归求routes的方法
import recursionRoutes from "@/utils/recursionRoutes"
// 引入动态路由
import dynamicRoutes from "@/router/dynamicRoutes"
// 引入静态路由
import staticRoute from "@/router/staticRoute"
// 引入路由对象
import router from "@/router"

export const usePermission =defineStore("permission",{
    state(){
        return{
            menuList:[],
            logout:false,
            collapse:false
        }
    },
    actions:{
        fetch_menulist(){
            // 发起请求，获得菜单
           return api.getMenuApi()
            .then(res=>{
                // console.log(res)
                // console.log(routes)
                let userRoutes =recursionRoutes(res.data.menuList,routes)
                // console.log(userRoutes)
                // 给menulist赋值
                this.menuList =userRoutes
                // 开始添加动态路由
                // 1.先从动态路由中 找到路径是/的路由对象
                let target =dynamicRoutes.find(route=>route.path==="/")
                // 2.将用户路由变成他的孩子
                target.children =userRoutes
                // 3.静态路由也要添加到dynamicRoutes的孩子里面
               target.children=[...target.children,...staticRoute]
               console.log(target)
            //   4.使用addRoute的方法，将动态路由的routes配置
                router.addRoute(target)
            })


        }
    }
})